# -*- coding:utf-8 -*-
"""
Author：Administrator
Date:2021年12月26日
"""
import matplotlib.pyplot as plt
import matplotlib

matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False


# 显示饼形图
def pie_chart(size, label, title):
	"""
	绘制饼形图
	:param size: 各部分大小
	:param label: 设置各部分标签
	labeldistance:设置标签文本距圆心位置,1.1表示1.1倍半径
	autopct:设置圆里面文本
	shadow:设置是否有阴影
	startangle:起始角度,默认从0开始逆时针旋转
	pctdistance:设置圆内文本距圆心距离
	:param title:
	:return:
	"""
	plt.figure()
	plt.pie(size, labels=label, labeldistance=1.05, autopct="%1.1f%%", shadow=True, startangle=0,
	        pctdistance=0.6)
	plt.axis('equal')
	plt.title(title, fontsize=12)
	plt.legend(bbox_to_anchor=(0.01, 1))
	plt.show()


# 显示预测房价折线图
def broken_line(y, y_pred, title):
	"""
		y:y轴折线点,也就是房子总价
		y_pred:预测房价的折线点
		color:折线的颜色
		marker:折点的形状
	"""
	plt.figure()
	plt.plot(y, color='r', marker='o', label='真实房价')
	plt.plot(y_pred, color='b', marker='*', label='预测房价')
	plt.xlabel('房子数量')
	plt.ylabel('房子总价')
	plt.title(title)
	plt.legend()
	plt.grid()
	plt.show()


def average_price_bar(x, y, title):
	plt.figure()
	plt.bar(x, y, alpha=0.8)
	plt.xlabel('区域')
	plt.ylabel('均价')
	plt.title(title)
	# 为每一个图形加数值标签
	for x, y in enumerate(y):
		plt.text(x, y + 100, y, ha='center')

	plt.show()


# 显示装修条形图
def renovation_bar(x, y, title):
	plt.figure()
	plt.bar(x, y, alpha=0.8)
	plt.xlabel('装修类型')
	plt.ylabel('数量')
	plt.title(title)
	for x, y in enumerate(y):
		plt.text(x, y + 10, y, ha='center')

	plt.show()


# 显示热门户型的水平条形图
def bar(price, type, title):
	"""
	绘制水平条形图方法
	参数一:y轴
	参数二:x轴
	"""
	plt.figure()
	plt.barh(type, price, height=0.3, color='r', alpha=0.8)
	plt.xlim(0, 15000)
	plt.xlabel('均价')
	plt.title(title)
	for y, x in enumerate(price):
		plt.text(x + 10, y, str(x) + '元', va='center')
	plt.show()
